HTML and CSS (Cascading Style Sheets) layout is an important component for presentation systems that deal with Web content. The nature of modern Web content sets high requirements for layout engines in both functionality and performance respects.
Various existing presentation systems such as Internet browsers, Windows Presentation Foundation (WPF), and various applications address flow content measuring and floating geometry layout, such as that employed in connection with HTML and CSS, in a fully recursive and holistic manner. For example, such systems may layout entire content sub-trees during layout processing.
Flow content describes content that “flows” when it is laid out. For example, lines of text can wrap from line-to-line and/or flow in between different types of geometry, such as floating elements and the like. For example, in a newspaper column layout, an image may appear as a floating element at the top left so that text may flow along the right edge of the image and then proceed underneath the image.
Using fully recursive processes to conduct flow layout can be computationally expensive and inefficient. Additionally, such processes force a non-interruptible, all-or-none approach when higher-level layout algorithms are being designed.